package com.spark;

import com.hankcs.hanlp.HanLP;
import com.hankcs.hanlp.seg.Segment;
import com.hankcs.hanlp.seg.common.Term;
import com.hankcs.hanlp.tokenizer.NLPTokenizer;
import com.hankcs.hanlp.tokenizer.StandardTokenizer;
import org.ansj.library.UserDefineLibrary;
import org.ansj.splitWord.analysis.NlpAnalysis;
import org.ansj.splitWord.analysis.ToAnalysis;
import org.apache.commons.io.FileUtils;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

/**
 * Created by TRS on 2017/6/21.
 */
public class Abstract {


    public static void main(String[] args) throws IOException {

        File file=new File("E:\\file\\svm 数据");
        File [] files=file.listFiles();
        File wordFile=new File("E:\\file\\res\\word.txt");






        List<String> news=new ArrayList<String>();


        int allCount=0;

        for (File f:files){
            List<String> lines= FileUtils.readLines(f);
            for(String line:lines){

                line=line.substring(1,line.length()-1).trim().replaceAll("[\\p{Punct}\\pP]", "");

                List<org.ansj.domain.Term> termList = NlpAnalysis.parse(line).getTerms();
                String words="";
                for (org.ansj.domain.Term t:termList){
                    words+=t.getName().trim()+" ";
                }
                if(words.trim().length()>1){

                    news.add(f.getName().substring(0,1)+"," +words.trim());
                }
                allCount+=news.size();

            }


        }

        System.out.println(news.size()+" allCount="+allCount);

        FileUtils.writeLines(new File("E://ansgNews.txt"),"UTF-8",news);




    }


    public static void test(){

        String news = " 6月20日，十四届省纪委召开第一次常委会(扩大)会议，专题学习贯彻省第十四次党代会精神，省委常委、省纪委书记刘建超主持会议并讲话。\n" +
                "　　会议指出，省第十四次党代会是在我省进入高水平全面建成小康社会决胜阶段召开的一次十分重要的会议，意义重大，影响深远。特别是会议把建设清廉浙江纳入“六个浙江”建设的整体布局，对今后五年推进全面从严治党、深化党风廉政建设和反腐败斗争作出了系统部署，这对全省纪检监察系统更具特殊重要的意义。\n" +
                "　　会议强调，全省纪检监察系统要把学习贯彻省党代会精神作为首要政治任务，认真传达学习，坚决贯彻落实，切实履行党内监督专责机关职责，把省党代会精神贯彻落实情况作为政治监督、政治巡视的重点，严明政治纪律和政治规矩，强化政治和纪律保障，推动全省各级党组织和广大党员干部把思想和行动统一到省党代会精神上来，深入贯彻习近平总书记系列重要讲话精神和治国理政新理念新思想新战略，特别是对浙江工作的重要指示精神，弘扬和秉持红船精神，坚定不移地沿着“八八战略”指引的路子走下去。\n" +
                "　　会议要求，全省纪检监察系统要从政治和全局的高度，结合推进“两学一做”学习教育常态化制度化，迅速掀起学习贯彻省党代会精神的热潮。省纪委常委会和委机关要带头深入组织学习讨论，研究谋划好建设清廉浙江的实现路径，逐项分解落实好省党代会通过的省纪委工作报告确定的工作任务，加强对全省纪检监察系统学习贯彻工作的指导推动。要提高政治站位、增强政治定力，坚决拥护新一届省委的集体领导，坚决贯彻省党代会的决策部署。要不断学思践悟，从政治和全局的高度，进一步找准纪检监察工作的切入点和着力点，切实把学习贯彻成果转化成为保障省党代会精神贯彻落实的具体措施，转化成指导推进我省党风廉政建设和反腐败斗争的实际行动。\n" +
                "　　会议还传达学习了车俊同志在十四届省委常委会第一次会议上的讲话精神，通过了省纪委常委会加强自身建设的意见。省纪委还就全省纪检监察系统学习贯彻省党代会精神作出具体部署。";


        System.out.println(HanLP.segment(news));

        //标准分词
        List<Term> termList = StandardTokenizer.segment(news);
        System.out.println(termList);


        //NLP分词
        List<Term> nlpList = NLPTokenizer.segment(news);
        System.out.println(nlpList);

        Segment segment = HanLP.newSegment().enableNameRecognize(true);
        List<Term> segmenttermList = segment.seg(news);
        System.out.println(segmenttermList);


        //摘要
        List<String> sentenceList = HanLP.extractSummary(news, 3);
        System.out.println(sentenceList);

        //短语
        List<String> phraseList = HanLP.extractPhrase(news, 10);
        System.out.println(phraseList);
    }


}
